let fs = require("fs")
let path = require('path')
/**
 * 删除文件 fs.unlink
 * 删除文件夹 fs.rmdir 这一定是一个空目录
 * 
 */
// 同步删除文件夹
function rmdir(dir){
    let files = fs.readdirSync(dir)
    files.forEach(item=>{
        let child = fs.statSync(path.join(dir, item))
        if(child.isDirectory()){
            rmdir(path.join(dir, item))
        } else {
            fs.unlinkSync(path.join(dir, item))
        }
    });
    fs.rmdirSync(dir)
}

rmdirAsync('a')

// 异步删除文件夹
function rmdirAsync(dir){
    return new Promise(function(resolve, reject){
        fs.stat(dir, (err, stat)=>{
            if(stat.isDirectory()){
                fs.readdir(dir, (err, files)=>{
                    if(err) return reject(err);
                    // 先删除当前目录的子文件夹或文件
                    Promise.all(files.map(item=>rmdirAsync(path.join(dir, item))))
                        .then(()=>{
                            fs.rmdir(dir, resolve)
                        })
                });
            } else {
                fs.unlink(dir, resolve)
            }
        })
        
        
    })
}

